#!/bin/bash

# AI Agent 启动脚本

set -e

echo "🚀 启动 AI 智能客服助理..."

# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装，请先安装 Docker"
    exit 1
fi

# 检查 docker-compose 是否安装
if ! command -v docker-compose &> /dev/null; then
    echo "❌ docker-compose 未安装，请先安装 docker-compose"
    exit 1
fi

# 创建日志目录
mkdir -p backend/logs

# 检查环境配置文件
if [ ! -f ".env" ]; then
    echo "⚠️  未找到 .env 文件，正在从模板创建..."
    if [ -f "env-example.txt" ]; then
        cp env-example.txt .env
        echo "✅ 已创建 .env 文件，请编辑其中的配置项"
        echo "⚠️  请先配置必要的环境变量后再启动"
        exit 1
    else
        echo "❌ 未找到环境配置模板文件"
        exit 1
    fi
fi

# 停止可能存在的旧容器
echo "🛑 停止旧容器..."
docker-compose down

# 构建并启动服务
echo "🏗️  构建服务..."
docker-compose build

echo "🚀 启动服务..."
docker-compose up -d

# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 10

# 检查并初始化 Ollama 模型
if [ "$OLLAMA_BASE_URL" ] && [ "$OLLAMA_MODEL_NAME" ]; then
    echo "🤖 初始化 Ollama 模型..."
    if command -v ollama &> /dev/null; then
        # 确保 Ollama 服务正在运行
        if ! curl -f http://localhost:11434/api/tags &> /dev/null; then
            echo "⚠️  Ollama 服务未运行，尝试启动..."
            ollama serve &
            sleep 5
        fi

        # 拉取模型
        if ! ollama list | grep -q "$OLLAMA_MODEL_NAME"; then
            echo "📥 拉取 Ollama 模型: $OLLAMA_MODEL_NAME"
            ollama pull "$OLLAMA_MODEL_NAME"
        else
            echo "✅ Ollama 模型 $OLLAMA_MODEL_NAME 已存在"
        fi
    else
        echo "⚠️  Ollama 未安装，将使用容器中的 Ollama 服务"
    fi
fi

# 检查服务状态
echo "🔍 检查服务状态..."

# 检查后端服务
if curl -f http://localhost:8000/health &> /dev/null; then
    echo "✅ 后端服务启动成功: http://localhost:8000"
else
    echo "❌ 后端服务启动失败"
fi

# 检查前端服务
if curl -f http://localhost:3000 &> /dev/null; then
    echo "✅ 前端服务启动成功: http://localhost:3000"
else
    echo "❌ 前端服务启动失败"
fi

# 检查 Mock 服务
if curl -f http://localhost:5000/health &> /dev/null; then
    echo "✅ Mock 服务启动成功: http://localhost:5000"
else
    echo "❌ Mock 服务启动失败"
fi

echo ""
echo "🎉 AI 智能客服助理启动完成!"
echo ""
echo "📱 前端界面: http://localhost:3000"
echo "🔧 后端 API: http://localhost:8000"
echo "📊 API 文档: http://localhost:8000/docs"
echo "🧪 Mock 服务: http://localhost:5000"
echo ""
echo "💡 使用提示:"
echo "   - 查看日志: docker-compose logs -f"
echo "   - 停止服务: docker-compose down"
echo "   - 重启服务: docker-compose restart"
